package org.example.testdemo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.example.testdemo.pojo.PageReq;
import org.example.testdemo.pojo.Project;
import org.example.testdemo.pojo.combination.ProjectList;
import org.example.testdemo.pojo.combination.ProjectPid;
import org.example.testdemo.pojo.combination.ProjectUpdate;

import java.util.List;

public interface ProjectService {

    public List<ProjectPid> getProjectPname(String pName);

    public Project querySubordinateProjects(String pId);

    public List<ProjectPid> subordinateProjects(String pId);

    public void updateDetails(@Param("pId")String pId);

    public Integer insertProject(Project project);

    public IPage<ProjectList> getProjectList(String pName, String bCode, String name,String pId, PageReq pageReq);

    public ProjectUpdate obtainProjectInformation(String pId);

    public Integer updateProject(Project project);

    public void updateProjectAll(String pId,Integer state);

    public Integer deleteProject(List<String> pIdList);

    public IPage<ProjectList> getMyProjects(String name,String pId,String userId,PageReq pageReq);

    public Integer deleteProjectSingle(String pId);

    public List<ProjectList> getAutProjectList(String userId);

    public IPage<ProjectList> authorizeProject(String userId,String pName,String pId, PageReq pageReq);

    public Project searchResponsiblePerson(String pId,String userId);

}
